home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-05-29 | 1.7 KB | 80 lines | [TEXT/CWIE] |
- unit MyButtons;
-
- interface
-
- uses
- Dialogs;
-
- procedure GrayButton (dlg: DialogPtr; item: integer);
- procedure UngrayButton (dlg: DialogPtr; item: integer);
- procedure UpdateButton (dlg: DialogPtr; item: integer; active: boolean);
- procedure InitButton (dlg: DialogPtr; item: integer; var active: boolean; new: boolean);
- procedure SetButton (dlg: DialogPtr; item: integer; var active: boolean; new: boolean);
-
- implementation
-
- uses
- MyTypes;
-
- procedure GrayButton (dlg: DialogPtr; item: integer);
- var
- kind: integer;
- h: Handle;
- r: Rect;
- ps: PenState;
- begin
- GetDialogItem(dlg, item, kind, h, r);
- InsetRect(r, 4, 2);
- GetPenState(ps);
- PenPat(GetQDGlobals^.gray);
- PenMode(patBic);
- PaintRoundRect(r, 3, 3);
- SetPenState(ps);
- end;
-
- procedure UngrayButton (dlg: DialogPtr; item: integer);
- var
- kind: integer;
- h: Handle;
- r: Rect;
- begin
- GetDialogItem(dlg, item, kind, h, r);
- Draw1Control(ControlHandle(h));
- end;
-
- procedure UpdateButton (dlg: DialogPtr; item: integer; active: boolean);
- begin
- if not active then begin
- GrayButton(dlg, item);
- end;
- end;
-
- procedure InitButton (dlg: DialogPtr; item: integer; var active: boolean; new: boolean);
- var
- kind: integer;
- h: Handle;
- r: Rect;
- begin
- active := new;
- GetDialogItem(dlg, item, kind, h, r);
- if active then begin
- HiliteControl(ControlHandle(h), 0);
- end else begin
- HiliteControl(ControlHandle(h), 255);
- GrayButton(dlg, item);
- end;
- end;
-
- procedure SetButton (dlg: DialogPtr; item: integer; var active: boolean; new: boolean);
- begin
- if active <> new then begin
- if new then begin
- UngrayButton(dlg, item);
- end else begin
- GrayButton(dlg, item);
- end;
- InitButton(dlg, item, active, new);
- end;
- end;
-
- end.